package com.itheima.d2_polymorphism;

public class Test {
    public static void main(String[] args) {
        // 目标：搞清楚使用多态的好处。
        // 1、多态下右边对象是解耦合的。
        Animal a = new Dog();
        a.cry();

        Cat c = new Cat();
        go(c);

        Dog d = new Dog();
        go(d);

        System.out.println("-------------------------------");
        // 多态下存在的一个问题：不能直接调用子类独有的功能。
        //a.lookDoor(); // 报错
    }

    // 2、多态下，父类类型作为方法的形参，可以接收一切子类对象，方法更便利
    public static void go(Animal a){
        System.out.println("开始。。。");
        a.cry(); // 对象回调4
        // 多态下存在的一个问题：不能直接调用子类独有的功能。
        //a.lookDoor(); // 报错
        //a.catchFish(); // 报错
        System.out.println("结束。。。");
    }

}
